<?php

class Sitio {
  /**
   * @var Template
   */
  var $oTemplate;
  
  function Sitio() {
    $this->oTemplate = new Template();
    $this->SetupArchivosExternos();
    $this->SetupPaginas();
  }
  
  function SetupPaginas() {
    
  }
  
  function SetupArchivosExternos() {
    global $strGUrl        ;
    global $strGEstilo     ;
    global $strGJQueryVer  ;
    global $strGJQueryUIVer;
    
    $this->oTemplate->AgregarArchivoExtra("colorpicker.css"                                  , "css");
    $this->oTemplate->AgregarArchivoExtra("$strGEstilo/jquery-ui-$strGJQueryUIVer.css"       , "css");
    $this->oTemplate->AgregarArchivoExtra("$strGEstilo.css"                                  , "css");
    $this->oTemplate->AgregarArchivoExtra("print.css"                                        , "css");
    $this->oTemplate->AgregarArchivoExtra("style.css"                                        , "css");
    $this->oTemplate->AgregarArchivoExtra("template.css"                                     , "css");
    $this->oTemplate->AgregarArchivoExtra("dropdown_menu.css"                                , "css");
    $this->oTemplate->AgregarArchivoExtra("agile_carousel.css"                               , "css");
    $this->oTemplate->AgregarArchivoExtra("jquery.jcrop.css"                                 , "css");
    $this->oTemplate->AgregarArchivoExtra("jquery.loadmask.css"                              , "css");

    $this->oTemplate->AgregarArchivoExtra("jquery-$strGJQueryVer.min.js"                     , "js" );
    $this->oTemplate->AgregarArchivoExtra("jquery-ui-$strGJQueryUIVer.min.js"                , "js" );
    $this->oTemplate->AgregarArchivoExtra("jquery-plugins/jquery.formatCurrency-1.4.0.min.js", "js" );
    $this->oTemplate->AgregarArchivoExtra("jquery-plugins/jquery-ui-timepicker-addon.js"     , "js" );
    $this->oTemplate->AgregarArchivoExtra("jquery-plugins/jquery.jacg.js"                    , "js" );
    $this->oTemplate->AgregarArchivoExtra("jquery-plugins/colorpicker.js"                    , "js" );
    $this->oTemplate->AgregarArchivoExtra("jquery-plugins/jquery.jcrop.js"                   , "js" );
    $this->oTemplate->AgregarArchivoExtra("jquery-plugins/agile_carousel.alpha.js"           , "js" );
    $this->oTemplate->AgregarArchivoExtra("jquery-plugins/jquery.maskedinput.min.js"         , "js" );
    $this->oTemplate->AgregarArchivoExtra("jquery-plugins/jquery.loadmask.min.js"            , "js" );
    $this->oTemplate->AgregarArchivoExtra("common.js"                                        , "js" );
    $this->oTemplate->AgregarArchivoExtra("base.js"                                          , "js" );
    $this->oTemplate->AgregarArchivoExtra("sitio.js"                                         , "js" );
    $this->oTemplate->AgregarArchivoExtra("abc.js"                                           , "js" );
    $this->oTemplate->AgregarArchivoExtra("$strGUrl/index.php?option=jsvars"                 , "js" );
    $this->oTemplate->AgregarArchivoExtra("swampy/sb.js"                                     , "js" );
    $this->oTemplate->AgregarArchivoExtra("tiny_mce/tiny_mce.js"                             , "js" );
    $this->oTemplate->AgregarArchivoExtra("tiny_mce_init.js"                                 , "js" );
//    $this->oTemplate->AgregarArchivoExtra("tinymce/tinymce.min.js"                           , "js" );
  }
  
  function Renderear($strContenidoPagina, $strPluginsPagina = "", $strTemplate = "default.tpl.php") {
    global $strGEstilo    ;
    global $strGUrl       ;
    global $strGUrlBaseSis;
    
    $oConfig         = new Config();
    $strPagina       = $strContenidoPagina;
    $strExtraFiles   = $this->oTemplate->GetExtraFiles();
    $strMenuSup      = Menu::OpcionesMenu();
    $strCuerpo       = "";
    $strNombreSitio  = $oConfig->Get('nombre_sitio', 'Sin titulo (Provisional)');
    
    $strMenuLateral = MenuLateral::RenderMenuLateral();

    eval('$strCuerpo = "' . $this->oTemplate->Get($strTemplate) . '";');
    
    return $strCuerpo;
  }
  
  function __TablaACLase_P1() {
    $oConecta  = new Conecta();
    $oConfig   = new Config ();
    
    $strPagina  = "";
    $strPagina .= "<table class='TablaReportes'>";
    $strPagina .= "<tr>";
    $strPagina .= "<th>Tabla</th>";
    $strPagina .= "<th>Configurar</th>";
    $strPagina .= "</tr>";

    $strConsulta = "SHOW TABLES";
    $oConecta->Consulta($strConsulta);

    $intTotalTablas = 0;
    $arrTablasConfiguradas = $oConfig->GetArray('cfg_tablas_configuradas');
    $arrTablasConfiguradas[] = "configuracion";
    $arrTablasConfiguradas[] = "permisos"     ;
    $arrTablasConfiguradas[] = "usuarios"     ;
    while(!$oConecta->EOF) {
      $strNombreTabla = @array_shift($oConecta->GetColumn());

      $strPagina .= "<tr " . Variables::AlternarConClase() . ">";
      $strPagina .= "<td>$strNombreTabla</td>";
      if(in_array($strNombreTabla, $arrTablasConfiguradas)) {
        $strPagina .= "<td>Ya configurada</td>";
      } else {
        $strPagina .= "<td><input type='button' value='configurar' onclick='document.location.href=\"index.php?option=tabla_a_clase&paso=2&tabla=$strNombreTabla\";' /></td>";
      }
      $strPagina .= "</tr>";
      $oConecta->MoveNext();
    }
    $strPagina .= "</table>";
    
    return $strPagina;
  }
  
  function __TablaACLase_P3() {
    global $strGPath;
    $oConfig = new Config();
    
    // Verificar que no exista el archivo que queremos escribir
    if(file_exists("$strGPath/clases/{$_POST["tabla"]}.class.php")) {
      header("Location: index.php?option=tabla_a_clase&paso=4&err=2&ot={$_POST["tabla"]}");
      die;
    }

    
    if(Variables::GetOption('obviar')) {
      // Solo se obviará la tabla
      $arrTablasConfiguradas = $oConfig->GetArray('cfg_tablas_configuradas');
      $arrTablasConfiguradas[] = Variables::GetOption('tabla');
      $oConfig->SetArray("cfg_tablas_configuradas", $arrTablasConfiguradas);
      
      header("Location: index.php?option=tabla_a_clase&paso=4&err=-1&ot={$_POST["tabla"]}");
      die;
    } else {
      $arrDatosOrden = Variables::OrdenarPorClaveConservaIndice($_POST["datos"], "orden");
      
      // Obtener los largos mayores
      $intMLenNom = strlen($_POST["col_indice"   ]);
      $intMLenVar = strlen($_POST["nombre_indice"]);
      $intMLenDes = 0;
      foreach($arrDatosOrden as $strNomCol => $arrInfoCol) {
        if(strlen($strNomCol             ) > $intMLenNom) $intMLenNom = strlen($strNomCol             );
        if(strlen($arrInfoCol["variable"]) > $intMLenVar) $intMLenVar = strlen($arrInfoCol["variable"]);
        if(strlen($arrInfoCol["desc"    ]) > $intMLenDes) $intMLenDes = strlen($arrInfoCol["desc"    ]);
      }
      
      // Empezar a armar el archivo
      $strArc = "";
      
      $strArc .= "<?php\n";
      $strArc .= "\n";
      $strArc .= "require_once(BaseConfig::LoadClass('objeto_base.class.php'));\n";
      $strArc .= "require_once(BaseConfig::LoadClass('filtro.class.php'     ));\n";
      $strArc .= "require_once(BaseConfig::LoadClass('abc.class.php'        ));\n";
      $strArc .= "\n";
      $strArc .= "class {$_POST["nombre_clase"]} extends ObjetoBase {\n";
      $strArc .= "  var \$" . str_pad($_POST["nombre_indice"], $intMLenVar). ";\n";
      foreach($arrDatosOrden as $strNomCol => $arrInfoCol) {
        $strArc .= "  var \$" . str_pad($arrInfoCol["variable"], $intMLenVar) . ";\n";
      }
      $strArc .= "  \n";
      $strArc .= "  function {$_POST["nombre_clase"]}(\${$_POST["nombre_indice"]} = 0) {\n";
      $strArc .= "    \$arrMapaDatos = Array();\n";
      $strArc .= "    \$arrMapaDatos[" . str_pad("'{$_POST["col_indice"]}'", $intMLenNom + 2) . "] = Array('NombreVariable' => " . str_pad("'{$_POST["nombre_indice"]}'", $intMLenVar + 2) . ", 'TipoVariable' => 'I');\n";
      foreach($arrDatosOrden as $strNomCol => $arrInfoCol) {
        $strArc .= "    \$arrMapaDatos[" . str_pad("'{$strNomCol}'", $intMLenNom + 2) . "] = Array('NombreVariable' => " . str_pad("'{$arrInfoCol["variable"]}'", $intMLenVar + 2) . ", 'TipoVariable' => '{$arrInfoCol["tipo"]}');\n";
      }
      $strArc .= "    \n";
      $strArc .= "    \$this->__ArmarDatosPrivados('{$_POST["tabla"]}', \$arrMapaDatos, '{$_POST["col_indice"]}');\n";
      $strArc .= "    \$this->SeleccionarPorIndice(\${$_POST["nombre_indice"]});\n";
      $strArc .= "  }\n";
      $strArc .= "}\n";
      
      $strArc .= "\n";
      
      $strArc .= "class Filtro{$_POST["nombre_clase"]} extends Filtro {\n";
      $strArc .= "  function Filtro{$_POST["nombre_clase"]}() {\n";
      foreach($arrDatosOrden as $strNomCol => $arrInfoCol) {
        if($arrInfoCol["orden"] < 0) continue;
        $strArc .= "    \$arrProceso[" . str_pad("'{$strNomCol}'", $intMLenNom + 2) . "] = " . str_pad("'{$arrInfoCol["desc"]}'", $intMLenDes + 2) . ";\n";
      }
      $strArc .= "    \n";
      $strArc .= "    parent::CrearFiltro('{$_POST["tabla"]}', '{$_POST["col_indice"]}', \$arrProceso, 'Busqueda', '', '', '{$_POST["nombre_clase"]}');\n";
      $strArc .= "  }\n";
      $strArc .= "}\n";
      
      $strArc .= "\n";
      
      $strArc .= "class ABC_{$_POST["nombre_clase"]} extends ABC_Base {\n";
      $strArc .= "  function ABC_{$_POST["nombre_clase"]}() {\n";
      $strArc .= "    \$strClaseBase     = '{$_POST["nombre_clase"]}'      ;\n";
      $strArc .= "    \$strClaseFiltro   = 'Filtro{$_POST["nombre_clase"]}';\n";
      $strArc .= "    \$strCampoMostrar  = '{$_POST["col_indice"]}';\n";
      $strArc .= "    \$strOpcionListado = 'abc_{$_POST["tabla"]}';\n";
      $strArc .= "    \$strOpcionGuardar = 'abc_{$_POST["tabla"]}';\n";
      $strArc .= "    \n";
      $strArc .= "    \$arrNombresColumnas = array();\n";
      foreach($arrDatosOrden as $strNomCol => $arrInfoCol) {
        if($arrInfoCol["orden"] < 0) continue;
        $strArc .= "    \$arrNombresColumnas[" . str_pad("'{$strNomCol}'", $intMLenNom + 2) . "] = " . str_pad("'{$arrInfoCol["desc"]}'", $intMLenDes + 2) . ";\n";
      }
      $strArc .= "    \n";
      $strArc .= "    \$arrReferencias = array();\n";
      foreach($arrDatosOrden as $strNomCol => $arrInfoCol) {
        if($arrInfoCol["orden"] < 0  ) continue;
        if($arrInfoCol["extra"] == "") continue;
        $strArc .= "    \$arrReferencias[" . str_pad("'{$strNomCol}'", $intMLenNom + 2) . "]['tipos'] = '{$arrInfoCol["extra"]}';\n";
      }
      $strArc .= "    \n";
      $strArc .= "    \$this->Inicializar(\$strClaseBase, \$arrNombresColumnas, \$strOpcionListado, \$strOpcionGuardar, \$strCampoMostrar, \$strClaseFiltro, \$arrReferencias);\n";
      $strArc .= "    \n";
      $strArc .= "    \$this->bolABCLista                = true;\n";
      $strArc .= "    \$this->bolABCListaOcultarTD       = true;\n";
      $strArc .= "    \$this->bolPosibleNuevoElemento    = true;\n";
      $strArc .= "    \$this->intTipoGuardado            = 1;\n";
      $strArc .= "    \$this->bolSoloLectura             = false;\n";
      $strArc .= "  }\n";
      $strArc .= "}\n";
      $strArc .= "\n";
      $strArc .= "?>";
      
      // Ya se tiene el archivo de la clase, ahora se necesita abrir el archivo de abc.inc.php para agregar este ABC
      // Recordar que el archivo debe de conformar con la especificacion 1.1 del archivo, la cual indica que:
      // Debe de tener una linea, al principio, que diga "/********** ABC.INC.PHP V1.1 START **********/"
      // Debe de tener una linea, despues de los includes, que diga "/********** ABC.INC.PHP V1.1 INCLUDE END **********/"
      // Debe de tener una linea, antes de terminar el switch, que diga "/********** ABC.INC.PHP V1.1 CASE END **********/"
      // Si no contiene dichas lineas, no se puede incluir automaticamente este ABC
      $arrArchivoABC     = file("$strGPath/abc.inc.php");
      $arrArchivoNuevo   = array();
      $intPasoArchivoABC = 0;
      foreach($arrArchivoABC as $strLinea) {
        if($intPasoArchivoABC == 0) {
          // Primero buscar la cabecera
          if(substr($strLinea, 0, strlen("/********** ABC.INC.PHP V1.1 START **********/")) == "/********** ABC.INC.PHP V1.1 START **********/") {
            $intPasoArchivoABC = 1;
          }
        } else if($intPasoArchivoABC == 1) {
          // La cabecera ya se encontró: ahora buscar donde vamos a poner el include
          if(substr($strLinea, 0, strlen("/********** ABC.INC.PHP V1.1 INCLUDE END **********/")) == "/********** ABC.INC.PHP V1.1 INCLUDE END **********/") {
            $arrArchivoNuevo[] = "require_once(BaseConfig::LoadClass('{$_POST["tabla"]}.class.php'));\n";
            $intPasoArchivoABC = 2;
          }
        } else if($intPasoArchivoABC == 2) {
          // Ahora buscar donde vamos a poner el codigo en si
          if(substr($strLinea, 0, strlen("/********** ABC.INC.PHP V1.1 CASE END **********/")) == "/********** ABC.INC.PHP V1.1 CASE END **********/") {
            $arrArchivoNuevo[] = "  case 'abc_{$_POST["tabla"]}': // *[1] {$_POST["nombre_clase"]}\n";
            $arrArchivoNuevo[] = "    \$oABC = new ABC_{$_POST["nombre_clase"]}(); \$strPagina = \$oABC->Mostrar(); break;\n";
            $intPasoArchivoABC = 3;
          }
        }
        
        $arrArchivoNuevo[] = $strLinea;
      }
    }
    
    if($intPasoArchivoABC == 3) {
      // Se puede poner completo el nuevo archivo :)
      $intError = 0;
      
      // Crear el archivo de la clase
      $rs = fopen("$strGPath/clases/{$_POST["tabla"]}.class.php", "a+");
      fwrite($rs, $strArc);
      fclose($rs);
      
      // Crear el nuevo ABC.INC.PHP
      $rs = fopen("$strGPath/abc.inc.php", "w+");
      fwrite($rs, join("", $arrArchivoNuevo));
      fclose($rs);
      
      // Guardar la configuracion
      $arrInfo = unserialize($oConfig->Get('cfg_tablas_configuradas_ext'));
      $arrInfo[Variables::GetOption('tabla')]["datos"        ] = $arrDatosOrden                       ;
      $arrInfo[Variables::GetOption('tabla')]["nombre_clase" ] = Variables::GetOption('nombre_clase' );
      $arrInfo[Variables::GetOption('tabla')]["nombre_indice"] = Variables::GetOption('nombre_indice');
      $oConfig->Set('cfg_tablas_configuradas_ext', serialize($arrInfo));
      
      $arrTablasConfiguradas = $oConfig->GetArray('cfg_tablas_configuradas');
      $arrTablasConfiguradas[] = Variables::GetOption('tabla');
      $oConfig->SetArray("cfg_tablas_configuradas", $arrTablasConfiguradas);
      
      // Y ya para acabar tambien agregar la opcion al administrador :)
      $oConecta = new Conecta();
      $strConsulta = "INSERT INTO permisos (id_usuario, permiso) VALUES (1, 'abc_{$_POST["tabla"]}')";
      $oConecta->Consulta($strConsulta);
    } else {
      // No se puede poner el archivo: Informar
      $intError = 1;
    }
    
    header("Location: index.php?option=tabla_a_clase&paso=4&er=$$intError&ot={$_POST["tabla"]}");
    die;
  }
  
  function __TablaACLase_P4($intEstatus, $strTabla) {
    $strPagina = "";
    
    switch($intEstatus) {
      case -1:
        $strPagina .= "<h1>La tabla $strTabla se ha marcado para no ser preguntada de nuevo</h1>";
        break;
      case 0:
        $strPagina .= "<h1>La tabla $strTabla se ha configurado</h1><br />";
        $strPagina .= "<h2>Se ha creado el archivo $strTabla.class.php en el directorio de clases</h2><br />";
        $strPagina .= "<h2>Se ha creado la entrada del permiso abc_$strTabla en el archivo abc.inc.php</h2><br />";
        break;
      case 1:
        $strPagina .= "<h2>La tabla $strTabla se ha configurado</h2><br />";
        $strPagina .= "<h3>Se ha creado el archivo $strTabla.class.php en el directorio de clases</h3><br />";
        $strPagina .= "<h1>NO SE HA CREADO LA ENTRADA DEL PERMISO abc_$strTabla EN EL ARCHIVO abc.inc.php, HACERLO MANUALMENTE</h1><br />";
        break;
      case 2:
        $strPagina .= "<h1>NO SE HA CREADO EL ARCHIVO $strTabla.class.php EN EL DIRECTORIO DE clases, PORQUE YA EXISTE UNO</h1><br />";
        break;
    }
    
    $strPagina .= "<br /><br /><a href='index.php?option=tabla_a_clase'>Regresar</a>";
    
    return $strPagina;
  }
  
  function __TablaACLase_P2($strTabla) {
    $oConecta    = new Conecta();
    $strConsulta = "DESC $strTabla";
    $oConecta->Consulta($strConsulta);
    $strPagina   = "";
    
    $strColIndice = "";
    $arrCols      = array();
    
    $strNombreClase = Variables::CapitalizeVar($strTabla);
    
    while(!$oConecta->EOF) {
      if(($oConecta->Field('Key') == "PRI") && ($oConecta->Field('Extra') == "auto_increment")) {
        // Esta es la indice: nombrar como tal
        $strColIndice = $oConecta->Field('Field');
        $strNombreColIndice = Variables::CapitalizeVar($strColIndice, "int");
      } else {
        if(substr($oConecta->Field('Type'), 0, 3) == "int") {
          $arrCols[$oConecta->Field('Field')]["tipo"] = "N";
          $arrCols[$oConecta->Field('Field')]["pref"] = "int";
        } else if(substr($oConecta->Field('Type'), 0, 7) == "decimal") {
          $arrCols[$oConecta->Field('Field')]["tipo"] = "N";
          $arrCols[$oConecta->Field('Field')]["pref"] = "flt";
        } else if(substr($oConecta->Field('Type'), 0, 5) == "float") {
          $arrCols[$oConecta->Field('Field')]["tipo"] = "N";
          $arrCols[$oConecta->Field('Field')]["pref"] = "flt";
        } else if(substr($oConecta->Field('Type'), 0, 7) == "varchar") {
          $arrCols[$oConecta->Field('Field')]["tipo"] = "S";
          $arrCols[$oConecta->Field('Field')]["pref"] = "str";
        } else if(substr($oConecta->Field('Type'), 0, 7) == "text") {
          $arrCols[$oConecta->Field('Field')]["tipo"] = "S";
          $arrCols[$oConecta->Field('Field')]["pref"] = "txt";
        } else if(substr($oConecta->Field('Type'), 0, 4) == "date") {
          $arrCols[$oConecta->Field('Field')]["tipo"] = "D";
          $arrCols[$oConecta->Field('Field')]["pref"] = "dte";
        } else {
          $arrCols[$oConecta->Field('Field')]["tipo"] = "S";
          $arrCols[$oConecta->Field('Field')]["pref"] = "str";
        }
        
        $arrCols[$oConecta->Field('Field')]["nom"] = Variables::CapitalizeVar($oConecta->Field('Field'), $arrCols[$oConecta->Field('Field')]["pref"]);
      }
      $oConecta->MoveNext();
    }
    
    $strPagina .= "<form action='index.php' method='POST'>";
    $strPagina .= "<input type='hidden' name='option' value='tabla_a_clase' />";
    $strPagina .= "<input type='hidden' name='paso' value='3' />";
    $strPagina .= "<input type='hidden' name='tabla' value='$strTabla' />";
    $strPagina .= "<table class='TablaReportes'>";
    
    // Si existe una columna llave, si se puede hacer este proceso
    if($strColIndice) {
      $strPagina .= "<tr>";
      $strPagina .= "<th colspan='6'>Configuracion de tabla '$strTabla' (Indice: '$strColIndice')</th>";
      $strPagina .= "</tr>";
      
      $strPagina .= "<tr>";
      $strPagina .= "<th>Columna</th>";
      $strPagina .= "<th>Tipo</th>";
      $strPagina .= "<th>Extra</th>";
      $strPagina .= "<th>Variable</th>";
      $strPagina .= "<th>Descripcion</th>";
      $strPagina .= "<th>Orden (-1 Oculta)</th>";
      $strPagina .= "</tr>";
      
      $strPagina .= "<tr>";
      $strPagina .= "<th colspan='3'>Nombre de la clase:</th>";
      $strPagina .= "<th><input type='text' name='nombre_clase' value='$strNombreClase' /></th>";
      $strPagina .= "<th colspan='2'>&nbsp;</th>";
      $strPagina .= "</tr>";
      
      $strPagina .= "<tr>";
      $strPagina .= "<th colspan='3'><input type='hidden' name='col_indice' value='$strColIndice' />$strColIndice</th>";
      $strPagina .= "<th><input type='text' name='nombre_indice' value='{$strNombreColIndice}' /></th>";
      $strPagina .= "<th colspan='2'>&nbsp;</th>";
      $strPagina .= "</tr>";
      
      $arrTipos  = array("S" => "Cadena", "N" => "Numero", "D" => "Fecha");
      $arrExtras = array(
        ""  => "Ninguno"     , 
        "R" => "Solo Lectura", 
        "T" => "TextArea"    , 
        "A" => "Anio"        , 
        "M" => "Mes"         , 
        "F" => "Archivo"     , 
        "C" => "Color"       , 
        "D" => "Fecha"
      );
      
      $intTotal = 0;
      foreach($arrCols as $strNombreCol => $arrDatosCol) {
        if($arrDatosCol["tipo"] == "D") {
          $strExtra = "D";
        } else if($arrDatosCol["pref"] == "txt") {
          $strExtra = "T";
        } else {
          $strExtra = "";
        }
        
        $strPagina .= "<tr " . Variables::AlternarConClase() . ">";
        
        $strPagina .= "<td>$strNombreCol</td>";
        $strPagina .= "<td>" . Variables::GetSelectByArray($arrTipos , $arrDatosCol["tipo"], "datos[$strNombreCol][tipo]") . "</td>";
        $strPagina .= "<td>" . Variables::GetSelectByArray($arrExtras, $strExtra, "datos[$strNombreCol][extra]") . "</td>";
        $strPagina .= "<td><input type='text' name='datos[$strNombreCol][variable]' value='{$arrDatosCol["nom"]}' /></td>";
        $strPagina .= "<td><input type='text' name='datos[$strNombreCol][desc]' value='{$strNombreCol}' /></td>";
        $strPagina .= "<td><input type='text' name='datos[$strNombreCol][orden]' value='{$intTotal}' /></td>";
        
        $strPagina .= "</tr>";
        
        $intTotal++;
      }
      
    } else {
      $strPagina .= "<tr>";
      $strPagina .= "<th colspan='6'>Configuracion de tabla '$strTabla' (<b>NO SE ENCUENTRA INDICE</b>)</th>";
      $strPagina .= "</tr>";
    }
    
    $strPagina .= "<tr><td colspan='6'><hr /></td></tr>";
    $strPagina .= "<tr>";
    $strPagina .= "<th colspan='5'><input type='checkbox' name='obviar' value='1' /> No volver a preguntar por esta tabla</th>";
    $strPagina .= "<th><input type='submit' value='Guardar' />";
    $strPagina .= "</tr>";
    
    $strPagina .= "</table>";
    return $strPagina;
  }
  
  function TablaAClase() {
    $strPagina = "";
    switch(Variables::GetOption("paso")) {
      case "4":
        $strPagina = $this->__TablaACLase_P4(Variables::GetOption('err'), Variables::GetOption('ot'));
        break;
      
      case "3":
        $strPagina = $this->__TablaACLase_P3();
        break;
      
      case "2":
        $strPagina = $this->__TablaACLase_P2(Variables::GetOption('tabla'));
        break;
      
      default:
        $strPagina = $this->__TablaACLase_P1();
        break;
    }
    
    return $strPagina;
  }
  
  function EdicionMenu() {
    $strPagina = "";
    
    return $strPagina;
  }
  
  function GuardarConfiguracion() {
    $oConfiguracion   = new Config();
    
    $oConfiguracion->Set('nombre_sitio'  , Variables::GetOption('nombre_sitio'  ));
    $oConfiguracion->Set('log_solo_https', Variables::GetOption('log_solo_https'));
  }
  
  function PaginaEdicion() {
    $oTemplate = new Template();
    
    $strConfiguracion = '';
    $oConfiguracion   = new Config();

    $arrConfiguracion      =  Array();
    $arrConfiguracion['1'] = 'Activo';
    $arrConfiguracion['0'] = 'Deshabilitado';
    
    $strNombreSitio = $oConfiguracion->Get('nombre_sitio', 'Sin titulo (Provisional)');

    $strSelectLoginPosibleHTTPS = Variables::GetSelectByArray($arrConfiguracion, $oConfiguracion->Get('log_solo_https', '0'), 'log_solo_https');

    $strFechaServidor           = date("Y-m-d H:i:s");

    eval('$strConfiguracion = "' . $oTemplate->Get('configuracion.tpl.php') . '";');
    return $strConfiguracion;
  }
}

?>